import type { RouteRecordNormalized } from 'vue-router';
// 引入modules文件夹下的所有.ts文件
const modules = import.meta.glob('./modules/*.ts', { eager: true })
// 引入externalModules文件夹下的所有.ts文件
const externalModules = import.meta.glob('./externalModules/*.ts', {
  eager: true,
})

// 格式化路由
/**
 * @description: 格式化路由
 * @param {any} _modules 路由模块
 * @param {RouteRecordNormalized[]} result 路由列表
 * @return {*}
 */
function formatModules(_modules: any, result: RouteRecordNormalized[]) {
  Object.keys(_modules).forEach((key) => {
    const defaultModule = _modules[key].default
    if (!defaultModule) return
    const moduleList = Array.isArray(defaultModule) ? [...defaultModule] : [defaultModule]
    result.push(...moduleList)
  })
  return result
}

/**
 * @description: 格式化路由
 * @param {any} _modules 路由模块
 * @param {RouteRecordNormalized[]} result 路由列表
 * @return {*}
 */
export const appRoutes: RouteRecordNormalized[] = formatModules(modules, [])

/**
 * @description: 格式化路由
 * @param {any} _modules 路由模块
 * @param {RouteRecordNormalized[]} result 路由列表
 * @return {*}
 */
export const appExternalRoutes: RouteRecordNormalized[] = formatModules(externalModules, [])
